package sdk

import (
	"github.com/hyperledger/fabric-sdk-go/pkg/client/channel"
	"github.com/hyperledger/fabric-sdk-go/pkg/client/event"
	ledgerclient "github.com/hyperledger/fabric-sdk-go/pkg/client/ledger"
	// mspclient "github.com/hyperledger/fabric-sdk-go/pkg/client/msp"
	// "github.com/hyperledger/fabric-sdk-go/pkg/client/resmgmt"
	// contextAPI "github.com/hyperledger/fabric-sdk-go/pkg/common/providers/context"
)

type OrgInfo struct {
	// OrgAdminUser string // like "Admin"
	OrgName string // like "Org1"
	// OrgMspId              string // like "Org1MSP"
	OrgUser string // like "User1"
	// orgMspClient *mspclient.Client
	// OrgAdminClientContext *contextAPI.ClientProvider
	// OrgResMgmt    *resmgmt.Client
	// OrgPeerNum    int
	// OrgAnchorFile string // like ./channel-artifacts/Org2MSPanchors.tx
}

type SdkChannelInfo struct {
	ChannelID string // like "simplecc"
	// ChannelConfig string // like os.Getenv("GOPATH") + "/src/github.com/hyperledger/fabric-samples/test-network/channel-artifacts/testchannel.tx"

	Orgs []*OrgInfo

	// OrdererAdminUser string // like "Admin"
	// OrdererOrgName   string // like "OrdererOrg"
	// OrdererEndpoint      string
	// OrdererClientContext *contextAPI.ClientProvider

	ChaincodeID string
	// ChaincodeVersion string
	Client       *channel.Client
	EventClient  *event.Client
	LedgerClient *ledgerclient.Client
}

type Server struct {
	SdkChannelInfo *SdkChannelInfo
}
